home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 03 (1982-11)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 03 (1982-11)(Softdisk)(Side B).do / AMORTIZATION.bas next >
BASIC Source File  |  1996-12-24  |  17KB  |  418 lines

  1. 1  CLEAR 
  2. 2  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>SET VARIABLES<CTRL-J>
  3. 5  DIM DA$(12)
  4. 6  DIM G$(500)
  5. 10 DA$(1) = "JAN"
  6. 12 DA$(2) = "FEB"
  7. 14 DA$(3) = "MAR"
  8. 16 DA$(4) = "APR"
  9. 18 DA$(5) = "MAY"
  10. 20 DA$(6) = "JUN"
  11. 22 DA$(7) = "JUL"
  12. 24 DA$(8) = "AUG"
  13. 26 DA$(9) = "SEP"
  14. 28 DA$(10) = "OCT"
  15. 30 DA$(11) = "NOV"
  16. 32 DA$(12) = "DEC"
  17. 50  REM <CTRL-J><CTRL-J><CTRL-J><CTRL-G><CTRL-G><CTRL-G><CTRL-G>THIS PROGRAM WILL PROVIDE YOU WITH AN AMORTIZATION SCHEDULE EITHER ON THE SCREEN OR IN A PRINTOUT.  A PRINTER IN SLOT #1 IS ASSUMED. THE PROGRAM WAS WRITTEN FOR A SILENTYPE - BUT SHOULD WORK ON ANY PRINTER.  <CTRL-J><CTRL-J>
  18. 89  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>INTRODUCTION & MENU<CTRL-J>
  19. 90  HOME 
  20. 91  PRINT "****************************************"
  21. 92  INVERSE : PRINT "              AMORTIZATION              ": NORMAL 
  22. 93  PRINT "****************************************";
  23. 94  PRINT "                    BY MARK HANDLEY"
  24. 95  PRINT "****************************************": PRINT 
  25. 100  PRINT "THIS PROGRAM WILL PROVIDE YOU WITH
  26. 102  PRINT "AN AMORTIZATION SCHEDULE IF YOU CAN
  27. 104  PRINT "PROVIDE ANY THREE OF THE FOLLOWING"
  28. 106  PRINT "FOUR VARIABLES:"
  29. 219  PRINT 
  30. 220  PRINT  SPC( 10)"-- PRINCIPAL"
  31. 229  PRINT 
  32. 230  PRINT  SPC( 10)"-- ANNUAL INTEREST RATE"
  33. 239  PRINT 
  34. 240  PRINT  SPC( 10)"-- NUMBER OF PAYMENTS"
  35. 249  PRINT 
  36. 250  PRINT  SPC( 10)"-- AMOUNT OF EACH PAYMENT"
  37. 251  PRINT : PRINT : PRINT "       (HIT ";: INVERSE : PRINT "<SPACE>";: NORMAL : PRINT " TO CONTINUE)";
  38. 252  GET G$: IF G$ < > CHR$(32)  THEN 252
  39. 254  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>MAKE A SELECTION<CTRL-J>
  40. 255  HOME : VTAB 4
  41. 260  PRINT "TYPE THE NUMBER OF THE SET OF VARIABLES THAT YOU WISH TO WORK WITH:"
  42. 261  PRINT : PRINT 
  43. 262  PRINT " (1) PRINCIPAL, INTEREST, NUMBER OF     PAYMENTS."
  44. 263  PRINT 
  45. 264  PRINT " (2) PRINCIPAL, INTEREST, AMOUNT OF EACH PAYMENT."
  46. 265  PRINT 
  47. 266  PRINT " (3) PRINCIPAL, NUMBER OF PAYMENTS,     AMOUNT OF EACH PAYMENT."
  48. 267  PRINT 
  49. 268  PRINT " (4) INTEREST, NUMBER OF PAYMENTS,      AMOUNT OF EACH PAYMENT."
  50. 270  PRINT : PRINT 
  51. 272  HTAB 14: PRINT "WHICH NUMBER?"
  52. 274  HTAB 16: PRINT "(1 TO 4)";
  53. 276  GET L: IF L <1  OR L >4  THEN 270
  54. 280  ON L GOSUB 995,2000,3000,4000
  55. 994  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>FIND MONTHLY PAYMENT<CTRL-J>
  56. 995  HOME 
  57. 997  GOSUB 16000
  58. 1000  INPUT "THE AMOUNT OF THE LOAN (THE PRINCIPAL)  IS: $";PA
  59. 1005 PB = PA
  60. 1010  PRINT : PRINT 
  61. 1020  INPUT "THE ANNUAL RATE OF INTEREST IS:";IA
  62. 1030  PRINT : PRINT 
  63. 1040  INPUT "THE NUMBER OF PAYMENTS IS:";NP
  64. 1060 IM = IA/1200
  65. 1080 M = PA *IM/(1 -(1 +IM) ^( -NP))
  66. 1085 X = M: GOSUB 5000
  67. 1090  HOME 
  68. 1100  PRINT "THE AMOUNT OF EACH MONTHLY PAYMENT      UNDER THIS PLAN WOULD BE $";X$
  69. 1120  GOSUB 12000
  70. 1130  IF G$ =  CHR$(82)  THEN  GOSUB 5515: GOTO 1140
  71. 1135  IF G$ =  CHR$(67)  THEN 995
  72. 1139  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>DO IT ON THE MONITOR<CTRL-J>
  73. 1140  HOME 
  74. 1145  SPEED= 175
  75. 1150  PRINT "PAY.NO." TAB( 9)"AMT." TAB( 17)"PRIN." TAB( 25)"INT." TAB( 33)"BALANCE"
  76. 1160 T = T +1
  77. 1240 IN = IM *PA
  78. 1250 X = IN: GOSUB 5000
  79. 1255 IN$ = X$
  80. 1260 PR = M -IN
  81. 1270 X = PR: GOSUB 5000
  82. 1275 PR$ = X$
  83. 1280 PA = PA -PR
  84. 1290 X = PA: GOSUB 5000
  85. 1292 PA$ = X$
  86. 1295  IF T = NP  THEN  GOTO 5500
  87. 1296 X = M: GOSUB 5000
  88. 1297 M$ = X$
  89. 1300  PRINT T TAB( 15 - LEN(M$))M$ TAB( 23 - LEN(PR$))PR$ TAB( 30 - LEN(IN$))IN$ TAB( 39 - LEN(PA$))PA$
  90. 1320  GOTO 1160
  91. 1999  REM <CTRL-J><CTRL-J><CTRL-G><CTRL-G>FIND # OF PAYMENTS <CTRL-J>
  92. 2000  HOME 
  93. 2004  GOSUB 16000
  94. 2005  INPUT "THE AMOUNT OF THE LOAN (THE PRINCIPAL)  IS: $";PA
  95. 2010 PB = PA
  96. 2015  PRINT : PRINT 
  97. 2020  INPUT "THE ANNUAL RATE OF INTEREST IS:";IA
  98. 2030  PRINT : PRINT 
  99. 2040  INPUT "THE MONTHLY PAYMENT IS TO BE: $";M
  100. 2060 IM = IA/1200
  101. 2061 IX = IM *PA
  102. 2062  IF IX >M  THEN  GOTO 6000
  103. 2065 NP = 0
  104. 2070 NP = NP +1
  105. 2080 MA = PA *(IM/(1 -(1 +IM) ^( -NP)))
  106. 2085  IF (MA -1) < = M  THEN  GOTO 2095
  107. 2090  GOTO 2070
  108. 2095  HOME 
  109. 2100  PRINT "THE TOTAL NUMBER OF MONTHLY PAYMENTS    FOR THE PLAN OUTLINED WILL BE:";NP
  110. 2130  GOSUB 12000
  111. 2140  IF G$ =  CHR$(82)  THEN  GOSUB 5515: GOTO 1140
  112. 2150  IF G$ =  CHR$(67)  THEN 2000
  113. 2999  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>FIND INTEREST RATE<CTRL-J>
  114. 3000  HOME 
  115. 3004  GOSUB 16000
  116. 3005  INPUT "THE AMOUNT OF THE LOAN (THE PRINCIPAL)  IS: $";PA
  117. 3010 PB = PA
  118. 3015  PRINT : PRINT 
  119. 3020  INPUT "THE NUMBER OF PAYMENTS IS:";NP
  120. 3030  PRINT : PRINT 
  121. 3040  INPUT "THE MONTHLY PAYMENT IS TO BE: $";M
  122. 3045  IF PA >(M *NP)  THEN  GOTO 6500
  123. 3060 IM = 0
  124. 3062 IM = IM +.01
  125. 3064  GOSUB 3400
  126. 3066  IF MA <M  THEN  GOTO 3062
  127. 3068 IM = IM -.01
  128. 3070 IM = IM +.001
  129. 3072  GOSUB 3400
  130. 3074  IF MA <M  THEN  GOTO 3070
  131. 3076 IM = IM -.001
  132. 3078 IM = IM +.0001
  133. 3080  GOSUB 3400
  134. 3082  IF MA <M  THEN  GOTO 3078
  135. 3084 IM = IM -.0001
  136. 3085 IM = IM +.00001
  137. 3088  GOSUB 3400
  138. 3090  IF MA <M  THEN  GOTO 3085
  139. 3091 IM = IM -.00001
  140. 3092 IM = IM +.000001
  141. 3093  GOSUB 3400
  142. 3094  IF MA <M  THEN  GOTO 3092
  143. 3095 IM = IM -.000001
  144. 3096 IM = IM +.0000001
  145. 3097  GOSUB 3400
  146. 3098  IF MA <M  THEN  GOTO 3096
  147. 3100 IA = IM *12
  148. 3110 IA =  INT(IA *100000 +.5)/1000
  149. 3115  HOME 
  150. 3120  PRINT : PRINT : PRINT "THE ANNUAL INTEREST ON THIS LOAN WILL   BE: ";IA;"%"
  151. 3160  GOSUB 12000
  152. 3180  IF G$ =  CHR$(82)  THEN  GOSUB 5515: GOTO 1140
  153. 3190  IF G$ =  CHR$(67)  THEN 3000
  154. 3400 MA = (PA *IM/(1 -(1 +IM) ^( -NP)))
  155. 3420  IF MA = M  THEN  GOTO 3100
  156. 3430  RETURN 
  157. 3999  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>FIND PRINCIPAL<CTRL-J>
  158. 4000  HOME 
  159. 4004  GOSUB 16000
  160. 4005  INPUT "THE ANNUAL RATE OF INTEREST IS: ";IA
  161. 4010  PRINT : PRINT 
  162. 4020  INPUT "THE MONTHLY PAYMENT IS TO BE: $";M
  163. 4030  PRINT : PRINT 
  164. 4040  INPUT "THE NUMBER OF PAYMENTS IS: ";NP
  165. 4060 IM = IA/1200
  166. 4080 PA = M/(IM/(1 -(1 +IM) ^( -NP)))
  167. 4082 X = PA: GOSUB 5000
  168. 4083 PA$ = X$
  169. 4085 PB = PA
  170. 4090  HOME 
  171. 4100  PRINT "THE TOTAL AMOUNT OF THIS LOAN IS: $";PA$
  172. 4130  GOSUB 12000
  173. 4140  IF G$ =  CHR$(82)  THEN  GOSUB 5515: GOTO 1140
  174. 4150  IF G$ =  CHR$(67)  THEN  GOTO 4000
  175. 5000  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>ALLIGN DECIMALS<CTRL-J>
  176. 5020 S1$ = "0":S2$ = ".00":D = 2
  177. 5040 X =  INT(X *100 +.5)/100
  178. 5050 X$ =  STR$(X)
  179. 5060  FOR I = 1 TO  LEN(X$)
  180. 5070  IF  MID$ (X$,I,1) < >"E"  THEN  NEXT I
  181. 5080  FOR J = 1 TO I -1
  182. 5090  IF  MID$ (X$,J,1) < >"."  THEN  NEXT J
  183. 5100  IF J +D <I  THEN N = J +D: GOTO 5130
  184. 5110  IF J +D = I  THEN N = J +1: GOTO 5160
  185. 5120  IF J +D >I -1  THEN N = J +2: GOTO 5190
  186. 5130 X$ =  LEFT$(X$,N) + MID$ (X$,I): RETURN 
  187. 5160 X$ =  LEFT$(X$,N) + MID$ (X$,I) +S1$: RETURN 
  188. 5190 X$ =  LEFT$(X$,N) + MID$ (X$,I) +S2$: RETURN 
  189. 5470 M = PA +IN
  190. 5499  REM  <CTRL-J><CTRL-J>LAST LINE (ON MONITOR)<CTRL-G><CTRL-G><CTRL-J>
  191. 5500  PRINT "LAST" TAB( 15 - LEN(M$))M$ TAB( 23 - LEN(PR$))PR$ TAB( 30 - LEN(IN$))IN$ TAB( 39 - LEN(PA$))PA$
  192. 5502  SPEED= 255
  193. 5505  VTAB 24
  194. 5506  PRINT "       (HIT ";: INVERSE : PRINT "<SPACE>";: NORMAL : PRINT " TO CONTINUE)";
  195. 5507  GET G$: IF G$ =  CHR$(32)  THEN  GOTO 5550
  196. 5510  GOTO 5507
  197. 5514  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>SHALL WE PRINT IT?<CTRL-J>
  198. 5515  HOME 
  199. 5518  HTAB 5: VTAB 10
  200. 5520  PRINT "DO YOU WANT A PRINTOUT OF THIS          AMORTIZATION SCHEDULE? (";: INVERSE : PRINT "Y";: NORMAL : PRINT "/";: INVERSE : PRINT "N";: NORMAL : PRINT ") ";
  201. 5530  GET G$: IF G$ < > CHR$(89)  AND G$ < > CHR$(78)  THEN 5530
  202. 5540  IF G$ =  CHR$(89)  THEN 13000
  203. 5545  RETURN 
  204. 5549  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>SHALL WE DO IT AGAIN?<CTRL-J>
  205. 5550  HOME : VTAB 12
  206. 5580  PRINT "DO YOU WANT TO RUN ANOTHER AMORTIZATION SCHEDULE? (";: INVERSE : PRINT "Y";: NORMAL : PRINT "/";: INVERSE : PRINT "N";: NORMAL : PRINT ") ";
  207. 5600  GET G$: IF G$ < > CHR$(78)  AND G$ < > CHR$(89)  THEN 5600
  208. 5610  IF G$ =  CHR$(89)  THEN 1
  209. 5620  HOME 
  210. 5630  PRINT : PRINT : PRINT 
  211. 5640  PRINT "       I HOPE I HAVE BEEN OF HELP"
  212. 5645  SPEED= 255
  213. 5650  END 
  214. 5699  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>HEADLINE INFORMATION<CTRL-J>
  215. 5700  SPEED= 255
  216. 5705 X = M: GOSUB 5000:M$ = X$
  217. 5706 X = PB: GOSUB 5000:PB$ = X$
  218. 5707  HOME : VTAB 10: HTAB 14: INVERSE : PRINT "NOW PRINTING": NORMAL 
  219. 5708 IA$ =  STR$(IA)
  220. 5709 NP$ =  STR$(NP)
  221. 5710  PRINT "<CTRL-D>";"PR#1": REM   ""=CTRL-D
  222. 5711  PRINT : PRINT : PRINT 
  223. 5712  PRINT "AMORTIZATION SCHEDULE"; TAB( 15)"PREPARED FOR:"; TAB( 2)W1$
  224. 5713  PRINT : PRINT "PRINCIPAL = $"PB$; TAB( 37 - LEN(PB$))W2$
  225. 5714  PRINT : PRINT "ANNUAL INTEREST = "IA"%"; TAB( 31 - LEN(IA$))W3$
  226. 5715  PRINT : PRINT "NUMBER OF PAYMENTS = ";NP; TAB( 29 - LEN(NP$))W4$; SPC( 2);W5$
  227. 5716  PRINT : PRINT "AMOUNT OF PAYMENT = $"M$; TAB( 29 - LEN(M$))W6$
  228. 5717  PRINT : PRINT : PRINT 
  229. 5720  PRINT "PAY.NO."; TAB( 5)"DATE"; TAB( 19)"PAYMENT"; TAB( 4)"PRINCIPAL"; TAB( 3)"INTEREST"; TAB( 4)"BALANCE"
  230. 5725  PRINT 
  231. 5730 T = 0
  232. 5739  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G><CTRL-G><CTRL-G>MAIN PRINTOUT ROUTINE<CTRL-J>
  233. 5740 T = T +1
  234. 5750 IN = IM *PB
  235. 5755 X = IN: GOSUB 5000:IN$ = X$
  236. 5760 PR = M -IN
  237. 5765 X = PR: GOSUB 5000:PR$ = X$
  238. 5770 PB = PB -PR
  239. 5775 X = PB: GOSUB 5000:PB$ = X$
  240. 5778 T$ =  STR$(T)
  241. 5781  PRINT  TAB( 5 - LEN(T$))T$; TAB( 8)DA$(Q);",";Y; TAB( 21 - LEN(M$))M$; TAB( 11 - LEN(PR$))PR$; TAB( 12 - LEN(IN$))IN$; TAB( 14 - LEN(PB$))PB$
  242. 5782  GOSUB 9000
  243. 5786  IF Q = 12  THEN  GOSUB 8000
  244. 5787 Q = Q +1
  245. 5790  IF T <NP  THEN  GOTO 5740
  246. 5791  GOSUB 8000
  247. 5792  GOSUB 10000
  248. 5795  PRINT : PRINT : PRINT : PRINT : PRINT : PRINT 
  249. 5799  PRINT "<CTRL-D>";"PR#0": REM  ""=CTRL-D
  250. 5800  GOTO 5550
  251. 5999  REM <CTRL-J><CTRL-J><CTRL-G><CTRL-G>NOT BIG ENOUGH PAYMENT<CTRL-J>
  252. 6000  HOME 
  253. 6010  PRINT : PRINT : PRINT "THE MONTHLY PAYMENT GIVEN IS NOT        SUFFICIENT TO PAY THE MONTHLY           INTEREST CHARGE."
  254. 6020  PRINT : PRINT : PRINT 
  255. 6030  PRINT "IF YOU WOULD LIKE TO TRY ANOTHER SET OF VALUES, PRESS ";: INVERSE : PRINT "<RETURN>";: NORMAL : PRINT " TO ";: INVERSE : PRINT "RETURN";: NORMAL : PRINT " TO": PRINT "THE BEGINNING."
  256. 6034  PRINT 
  257. 6035  PRINT "PRESS ";: INVERSE : PRINT "Q";: NORMAL : PRINT " TO ";: INVERSE : PRINT "Q";: NORMAL : PRINT "UIT AND RETURN TO BASIC."
  258. 6040  GET G$: IF G$ < > CHR$(13)  AND G$ < > CHR$(81)  THEN 6040
  259. 6045  IF G$ =  CHR$(13)  THEN 90
  260. 6050  HOME 
  261. 6060  PRINT : PRINT : PRINT : PRINT "      I'M SORRY I COULDN'T HELP."
  262. 6070  PRINT : PRINT : PRINT : PRINT 
  263. 6080  END 
  264. 6499  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>NOT ENOUGH PAYMENTS<CTRL-J>
  265. 6500  HOME 
  266. 6510  PRINT : PRINT : PRINT : PRINT "THE MONTHLY PAYMENT GIVEN IS NOT        SUFFICIENT TO PAY OFF THIS LOAN         IN THE NUMBER OF PAYMENTS LISTED."
  267. 6520  PRINT : PRINT : PRINT 
  268. 6530  GOTO 6030
  269. 6999  REM <CTRL-J><CTRL-J><CTRL-G><CTRL-G>CHECK FOR PAYMENT DATE<CTRL-J>
  270. 7000  HOME : GOSUB 17000
  271. 7010  IF J$ = "JAN"  THEN Q = 1: RETURN 
  272. 7020  IF J$ = "FEB"  THEN Q = 2: RETURN 
  273. 7030  IF J$ = "MAR"  THEN Q = 3: RETURN 
  274. 7040  IF J$ = "APR"  THEN Q = 4: RETURN 
  275. 7050  IF J$ = "MAY"  THEN Q = 5: RETURN 
  276. 7060  IF J$ = "JUN"  THEN Q = 6: RETURN 
  277. 7070  IF J$ = "JUL"  THEN Q = 7: RETURN 
  278. 7080  IF J$ = "AUG"  THEN Q = 8: RETURN 
  279. 7090  IF J$ = "SEP"  THEN Q = 9: RETURN 
  280. 7100  IF J$ = "OCT"  THEN Q = 10: RETURN 
  281. 7110  IF J$ = "NOV"  THEN Q = 11: RETURN 
  282. 7120  IF J$ = "DEC"  THEN Q = 12: RETURN 
  283. 7130  GOTO 7000
  284. 7999  REM <CTRL-J><CTRL-J><CTRL-G><CTRL-G>THIS YEAR'S TOTALS<CTRL-J>
  285. 8000 Q = 0
  286. 8011 X = AA: GOSUB 5000:AA$ = X$
  287. 8012 X = BB: GOSUB 5000:BB$ = X$
  288. 8013 X = CC: GOSUB 5000:CC$ = X$
  289. 8019  PRINT 
  290. 8020  PRINT "TOTALS FOR YEAR: ";Y TAB( 19 - LEN(AA$))AA$; TAB( 11 - LEN(BB$))BB$; TAB( 12 - LEN(CC$))CC$
  291. 8024 Y = Y +1
  292. 8025  PRINT : PRINT 
  293. 8026 A1 = A1 +AA:B1 = B1 +BB:C1 = C1 +CC:D1 = D1 +DD
  294. 8030 AA = 0:BB = 0:CC = 0:DD = 0
  295. 8040  RETURN 
  296. 8999  REM   <CTRL-J><CTRL-J><CTRL-G><CTRL-G>ADD TO YEAR'S TOTAL<CTRL-J>
  297. 9000 AA = AA +M:BB = BB +PR:CC = CC +IN: RETURN 
  298. 9999  REM  <CTRL-J><CTRL-J><CTRL-G><CTRL-G>TOTALS FOR THE LOAN<CTRL-J>
  299. 10000 X = A1: GOSUB 5000:A1$ = X$
  300. 10010 X = B1: GOSUB 5000:B1$ = X$
  301. 10020 X = C1: GOSUB 5000:C1$ = X$
  302. 10030 X = D1: GOSUB 5000:D1$ = X$
  303. 10035  PRINT : PRINT 
  304. 10040  PRINT "TOTALS FOR THIS LOAN"; TAB( 20 - LEN(A1$))A1$; TAB( 11 - LEN(B1$))B1$; TAB( 12 - LEN(C1$))C1$; TAB( 14 - LEN(D1$))D1$
  305. 10050  RETURN 
  306. 11999  REM <CTRL-J><CTRL-J><CTRL-G><CTRL-G>WHERE TO NOW??<CTRL-J>
  307. 12000  HTAB 5: VTAB 8
  308. 12010  PRINT "PRESS ";: INVERSE : PRINT "R";: NORMAL : PRINT " TO ";: INVERSE : PRINT "R";: NORMAL : PRINT "UN AN AMORTIZATION": HTAB 5: PRINT "SCHEDULE USING THESE VALUES."
  309. 12015  PRINT 
  310. 12020  HTAB 5: PRINT "PRESS ";: INVERSE : PRINT "C";: NORMAL : PRINT " TO ";: INVERSE : PRINT "C";: NORMAL : PRINT "HANGE ANY OF THESE": HTAB 5: PRINT "VALUES."
  311. 12025  PRINT 
  312. 12030  HTAB 5: PRINT "PRESS ";: INVERSE : PRINT "<RETURN>";: NORMAL : PRINT " TO ";: INVERSE : PRINT "RETURN";: NORMAL : PRINT " TO": HTAB 5: PRINT "THE BEGINNING."
  313. 12040  GET G$: IF G$ < > CHR$(82)  AND G$ < > CHR$(67)  AND G$ < > CHR$(13)  THEN 12040
  314. 12050  IF G$ =  CHR$(13)  THEN 90
  315. 12060  RETURN 
  316. 12999  REM <CTRL-J><CTRL-J><CTRL-G><CTRL-G>  MASTER SUBROUTINE
  317. 13000  REM   TO GET NAME AND
  318. 13001  REM   ADDRESS AND
  319. 13002  REM   PHONE NUMBER<CTRL-J><CTRL-G><CTRL-G>
  320. 13010 RC$ =  CHR$(8): REM   LEFT ARROW KEY (<--) WILL RESTART ENTRY
  321. 13020  HOME : VTAB 2
  322. 13030  PRINT "ENTER THE NAME, ADDRESS, AND PHONE #    OF THE PERSON FOR WHOM THIS AMORTIZATIONIS BEING PREPARED."
  323. 13040  INVERSE 
  324. 13045  VTAB 7
  325. 13050  FOR I = 1 TO 4: HTAB 1: PRINT I: NEXT 
  326. 13060  VTAB 10: HTAB 29: PRINT 5
  327. 13070  HTAB 1: PRINT 6
  328. 13080  NORMAL 
  329. 13090  VTAB 7: HTAB 6: PRINT "NAME: "
  330. 13100  HTAB 4: PRINT "STREET: "
  331. 13110  HTAB 6: PRINT "CITY: "
  332. 13120  HTAB 5: PRINT "STATE: ";
  333. 13130  HTAB 31: PRINT "ZIP: "
  334. 13140  HTAB 3: PRINT "PHONE #: "
  335. 13145  GOSUB 16100
  336. 13146  GOSUB 16000
  337. 13150  FOR F = 1 TO 6: GOSUB 15000: NEXT F
  338. 13199  REM <CTRL-J> <CTRL-G>ANY CHANGES??<CTRL-J>
  339. 13200  VTAB 16: HTAB 1: PRINT "   DO YOU WANT TO MAKE ANY CHANGES? ";
  340. 13210  GET G$: IF G$ < > CHR$(89)  AND G$ < > CHR$(78)  THEN 13210
  341. 13220  IF G$ =  CHR$(78)  THEN  GOSUB 7000: GOTO 5700
  342. 13225  VTAB 16: FOR I = 1 TO 39: PRINT " ";: NEXT I
  343. 13230  VTAB 16: HTAB 1: PRINT "    ENTER NUMBER OF FIELD TO CHANGE: ";
  344. 13240  GET G$
  345. 13245 F =  VAL(G$): IF F <1  OR F >6  THEN 13240
  346. 13250  GOSUB 15000
  347. 13255  VTAB 16: FOR I = 1 TO 39: PRINT " ";: NEXT I
  348. 13260  GOTO 13200
  349. 13270  END 
  350. 13999  REM <CTRL-J><CTRL-G>PRINT BLANK SPACES
  351. 14000  REM  AND FILL THEM IN
  352. 14010 HT =  POS(0) +1: REM  EMBER WHERE WE START
  353. 14020  INVERSE 
  354. 14030  FOR I = 1 TO LN: PRINT " ";: NEXT I
  355. 14035  IF F = 6  THEN  HTAB (HT +3): PRINT "/";: HTAB (HT +7): PRINT "-";
  356. 14040  NORMAL 
  357. 14045  HTAB (HT)
  358. 14050 CC$ = ""
  359. 14060  GET C$
  360. 14070  IF C$ = RC$  THEN  HTAB (HT): GOTO 14020
  361. 14080  IF C$ =  CHR$(13)  THEN  GOTO 14200
  362. 14090  IF  LEN(CC$) = LN  THEN  GOTO 14060
  363. 14100  PRINT C$;
  364. 14110 CC$ = CC$ +C$
  365. 14120  IF F = 6  AND  LEN(CC$) = 3  THEN CC$ = CC$ +"/": HTAB (HT): PRINT CC$;
  366. 14130  IF F = 6  AND  LEN(CC$) = 7  THEN CC$ = CC$ +"-": HTAB (HT): PRINT CC$;
  367. 14140  GOTO 14060
  368. 14200 J =  LEN(CC$)
  369. 14210  FOR I = J TO LN:CC$ = CC$ +" ": NEXT I
  370. 14220  HTAB (HT): PRINT CC$: RETURN 
  371. 14999  REM <CTRL-J><CTRL-G>DATA ENTRY SUBROUTINE<CTRL-J>
  372. 15000  ON F GOSUB 15100,15200,15300,15400,15500,15600: RETURN 
  373. 15100  VTAB 7: HTAB 11
  374. 15110 LN = 20: GOSUB 14000:W1$ = CC$: RETURN 
  375. 15200  VTAB 8: HTAB 11
  376. 15210 LN = 20: GOSUB 14000:W2$ = CC$: RETURN 
  377. 15300  VTAB 9: HTAB 11
  378. 15310 LN = 20: GOSUB 14000:W3$ = CC$: RETURN 
  379. 15400  VTAB 10: HTAB 11
  380. 15410 LN = 17: GOSUB 14000:W4$ = CC$: RETURN 
  381. 15500  VTAB 10: HTAB 35
  382. 15510 LN = 5: GOSUB 14000:W5$ = CC$: RETURN 
  383. 15600  VTAB 11: HTAB 11
  384. 15610 LN = 12: GOSUB 14000:W6$ = CC$: RETURN 
  385. 16000  VTAB 23: HTAB 2: PRINT "**HIT ";: INVERSE : PRINT "<RETURN>";: NORMAL : PRINT " TO END A DATA ENTRY**"
  386. 16010  VTAB 3: HTAB 1: RETURN 
  387. 16100  VTAB 22: HTAB 6: PRINT "**HIT ";: INVERSE : PRINT "<--";: NORMAL : PRINT " TO RESTART ENTRY**": RETURN 
  388. 16999  REM <CTRL-J><CTRL-J>GET A DATE<CTRL-G><CTRL-G><CTRL-J>
  389. 17000 RC$ =  CHR$(8)
  390. 17010  GOSUB 16000: GOSUB 16100
  391. 17015  VTAB 4: HTAB 1
  392. 17020  PRINT "ENTER THE DATE (MONTH,YEAR)"
  393. 17030  PRINT "OF THE FIRST PAYMENT:"
  394. 17040  HTAB 10: VTAB 8
  395. 17050  PRINT "USE FORMAT ";: INVERSE : PRINT "JAN,1982": NORMAL 
  396. 17060  HTAB 21: VTAB 9:HT =  POS(0) +1
  397. 17070  INVERSE : FOR I = 1 TO 3: PRINT " ";: NEXT I
  398. 17080  NORMAL : HTAB (HT)
  399. 17090 CC$ = ""
  400. 17100  GET C$
  401. 17110  IF C$ = RC$  THEN  HTAB (HT): GOTO 17070
  402. 17120  IF C$ =  CHR$(13)  OR C$ =  CHR$(32)  OR C$ =  CHR$(44)  THEN 17150
  403. 17130  IF  LEN(CC$) = 3  THEN 17100
  404. 17140  PRINT C$;:CC$ = CC$ +C$: GOTO 17100
  405. 17150 J$ = CC$: HTAB (HT): PRINT CC$;",";:HT =  POS(0) +1
  406. 17160  INVERSE : FOR I = 1 TO 4: PRINT " ";: NEXT I
  407. 17170  NORMAL : HTAB (HT)
  408. 17180 CC$ = ""
  409. 17190  GET C$
  410. 17200  IF C$ = RC$  THEN  HTAB (HT): GOTO 17160
  411. 17210  IF C$ =  CHR$(13)  OR C$ =  CHR$(32)  THEN 17240
  412. 17220  IF  LEN(CC$) = 4  THEN 17190
  413. 17230  PRINT C$;:CC$ = CC$ +C$: GOTO 17190
  414. 17240 Y =  VAL(CC$): HTAB (HT): PRINT CC$
  415. 17250  VTAB 16: HTAB 1: PRINT "DO YOU WANT TO MAKE ANY CHANGES? ";
  416. 17260  GET G$: IF G$ < > CHR$(78)  AND G$ < > CHR$(89)  THEN 17250
  417. 17270  IF G$ =  CHR$(89)  THEN 17060
  418. 17280  RETURN